home *** CD-ROM | disk | FTP | other *** search
- Subject: v15i085: Mush (mail user's shell) upgrade kit, version 6.3, Part01/04
- Newsgroups: comp.sources.unix
- Sender: sources
- Approved: rsalz@uunet.UU.NET
-
- Submitted-by: dheller@cory.Berkeley.EDU (Dan Heller)
- Posting-number: Volume 15, Issue 85
- Archive-name: mush6.3kit/part01
-
- This is the upgrade kit for Mush, bringing it to release 6.3. There is
- a README, then three files that comprise one set of diffs.
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of shell archive."
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'README-6.3' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'README-6.3'\"
- else
- echo shar: Extracting \"'README-6.3'\" \(9663 characters\)
- sed "s/^X//" >'README-6.3' <<'END_OF_FILE'
- X
- XThe file, "README" is always being updated for brand new users on how
- Xto install mush for the first time. It can be referenced for earlier
- Xinfo as well as previous README's. A new README-<versionID> file (like
- Xthis one) will accompany each new upgrade.
- X
- XFor those who wish to be on the mush-users mailing list, please
- Xsend requests to:
- X mush-users-request@garp.mit.edu
- XI do not maintain this list, so don't mail me.
- XThis mailing list discusses mush usage, internals, portability to new
- Xhardware or non-standard unix systems, future updates/enhancments,
- Xand exchange of general info. Since mush works on all flavors of
- Xunix from bsd to sys-v and has three different user interfaces, the
- Xgroup of subscribers is quite diverse. For those who are very
- Xinterested in influencing the X interface, now is the time to get
- Xyour opinions in for disucussion before it's too late.
- X
- XNew compiler defines:
- X DOT_LOCK
- X Define this if you want mush to use .lock to lock your mbox for
- X updates. See very last section of this file for detailed info.
- X
- X UUCP
- X This should be defined if your MTA does not automatically create a
- X From: header *and* your machine talks to other computers via uucp
- X (probably true for default xenix/sys-v systems).
- X
- X NO_COMMAS
- X This should be defined if your mailer does *NOT* like commas
- X between addresses on its command line. Last I heard, smail is
- X like this as well as default xenix/sys-v mail transport agents.
- X (This used to be defined by OLD_MAILER.)
- X
- X Note: if your MTA is "smail", OLD_MAILER should _not_ be set, but
- X NO_COMMAS should be set. That is as of this release date.
- X
- X SIGRET
- X This is defined to be "int" by default. If your signal() returns
- X void, SIGRET should be defined to be "void". This mostly applies
- X to SVR3.
- X
- X For any of these defines, you do one of two things:
- X (UUCP used as example)
- X 1) add -DUUCP in your makefile
- X 2) In config.h, add a line which reads:
- X #define UUCP
- X
- X For SIGRET, use either "-DSIGRET=void" or "#define SIGRET void"
- X
- XNew variables:
- X realname (string)
- X Set to the user's real name by:
- X 1) The user's real name is gotten from the environment variable NAME.
- X 2) The gecos field in the password file
- X Once mush has been started, this name can only be reset by changing
- X the value of realname -- not by changing 1 or 2 above.
- X
- X hostname (string)
- X The hostname is automatically set by the system, but if circumstances
- X make this impossible or the hostname is wrong, the user can reset this.
- X See the manual under the VARIABLES section for more info.
- X Important Note to sys-v'ers who can't get their hostname from utsname(2)
- X (xenix, more?), the hostname should probably be set in the default Mailrc
- X defined in config.h. "set hostname=whatever"
- X
- X save_empty (boolean)
- X If set, folders which have all messages deleted are not removed on
- X updates or change folder commands. The folder is left at zero length.
- X Note, this does not affect the spool mailbox; it is never removed on
- X updates.
- X
- X date_received (boolean)
- X If set, message headers are printed with the date received rather than
- X the date sent. This affects the sorting command; when sorting by date,
- X this variable is checked.
- X
- XMisc:
- X Addresses that have long uucp paths from the sender would be so long
- X that the "important" part of the path --which includes the sender's
- X login and machine name, found at the tail end of the address, would
- X be cut off. Such addresses are now shifted to the right if the whole
- X address cannot fit in the specified padding requested by the user.
- X This affects the hdr_format modifiers %a and %f. If the addresses
- X are shorter than the speicified width, there is no change:
- X set hdr_format = "%11a" # show no more than 11 chars of address
- X If the address is:
- X sun!island!argv
- X then the result will be:
- X island!argv
- X (previously, you'd get "sun!island!" losing the "argv" at the end.)
- X
- X Initialization file now udnerstands:
- X if -e filename
- X and
- X if -z filename
- X to test to see if a filename (folder) exists (-e) or zero-length (-z).
- X
- X Added SAVED flag to message status. If a message is saved,
- X this flag is set rather than the DELETE flag. Messages which
- X have been saved are marked with an 'S' in the status field.
- X All commands which deal with message status have been modified
- X to support this new flag (sort, headers (-H:s), etc...)
- X
- X $cdpath can now be read from the environment. that is, it understands
- X the ':' as a path separator now.
- X
- X ":p" can be used to select "preserved" messages. This adds to the
- X list of :c commands which select messages of status "c". headers -?
- X for more info.
- X
- Xmain.c --
- X fixed up helpfile assignments for toolmode and removed useless
- X warning messages.
- X
- X ignore sigpipe in main() instead of in do_loop(). This fixes the
- X bug where you mail someone without entering the shell and ~p to
- X page your message.
- X
- Xmail.c --
- X Some mailers don't add the From: header. Previous versions of
- X mush would add for these machines:
- X From: login
- X Now, the user's real name is added in parens. Also, if UUCP is
- X defined, the From: line will look like:
- X From: host!user (Real Name)
- X If uucp is not defined:
- X From: user@host (Real Name)
- X This is mostly for uucp systems, so when the user mails to remote
- X sites, the From: line should be correct for accurate replies.
- X
- X If fork() failed in toolmode, the error message is no longer
- X overwritten before the user knew the mail couldn't not be sent.
- X
- X ~? now uses the internal pager so the help doesn't scroll off the screen.
- X
- X The command: "r addr" to reply to a message and add a new address
- X at the same time no longer removes the last character in the first address
- X before adding the new address.
- X
- X If autosign has \n's or \t's embedded in the string, they are now
- X expanded to newlines and tabs respectively. This is also true for
- X using ~$variable to print a variable's value into a letter buffer.
- X For example, the command:
- X set autosign = "\Dan Heller\nisland!argv@sun.com"
- X will cause all outgoing letters to be signed with:
- X
- X --
- X Dan Heller
- X island!argv@sun.com
- X
- Xcurses.c --
- X fixed scrn_line() (screen-line: get a line from the screen) so
- X that the following expression is evaluated correctly:
- X changed:
- X if ((buf = mvinch(line, n) & A_CHARTEXT) == '\0')
- X to:
- X if ((buf[n] = (mvinch(line, n) & A_CHARTEXT)) == '\0')
- X
- Xloop.c --
- X disp_hist() (display history) no longer core dumps if the history
- X command was given from the curses mode using ':' and there was no
- X history created yet.
- X
- Xdoproc.c (suntools only) --
- X The save menu item would prompt to save in ~/mbox for both the
- X first and second menu items rather than just the first menu item.
- X The result was that you couldn't save to the file described by
- X the second menu item.
- X
- Xcommands.c --
- X save_msg() modified to support SAVED flag. Messages are not
- X deleted, but marked saved. When updating folder, keep_save is
- X checked, and if not set, saved messages are deleted.
- X
- Xmsgs.c --
- X changed lockf()'s last argument from 0 to 0L.
- X
- Xmisc.c --
- X Sprintf() (for SYSV) has been modified to correctly deal with
- X varargs. Sorry, the stuff in print.c still isn't, but someday...
- X Nevertheless, there are currently no bugs known or reported that
- X concern anything in print.c
- X
- X The internal pager now works with the -e flag (happy _now_ dave?)
- X
- Xpick.c --
- X picking patterns no longer requires the pattern to be in quotes
- X if it contains spaces. You may now specify:
- X pick -f -i dan heller
- X This example will find messages from "Dan Heller" (-i ignores case).
- X
- XWhat "dot-lock" is and why you may need it...
- X
- X When mush updates your mailbox, it needs to lock it so that if new
- X mail is being delivered at the same time, it will wait till mush
- X is done. Or, if the mail is there first, mush should wait before
- X attempting to lock the file. This should theoretically prevent new
- X mail from getting lost. But...
- X Different systems use different locking mechanisms. By default,
- X mush uses one of flock(), locking(), or lockf() (depending on your
- X system). Some systems use a file called the same name as the file
- X you're locking with an appended ".lock" at the end (some Xenix's use
- X /tmp/$USER.mlk).
- X If you define DOT_LOCK, mush will try to lock the mailbox using
- X first check for the .lock file. If it exists, it loops until it
- X goes away and then it creates it mode 600. Regardless of whether you
- X use dot-locking, mush will continue to try to use flock(), or whatever.
- X dot-locking requires mush to have write access to the directory where
- X your mailbox exists. Normally, this directory isn't writeable by the
- X average user, so you may have to sgid mush to do this to the group id
- X of the owner of that directory. Mush will get the effective gid at the
- X beginning of the program and immediately reset it to your real gid until
- X the time it needs to lock the file occurs. It changes back to the sgid,
- X locks, then returns to normal. There shouldn't be a security problem.
- X If you don't know what I'm talking about here, ignore DOT_LOCK
- X as this is the first attempt at such locking methods and is likely
- X to change.
- X Another warning is that some MTA's don't even follow their own protcol.
- X System V, it has been reported, creates the .lock file without checking
- X to see if it exists (therefore ruining someone else's lock).
- X
- END_OF_FILE
- if test 9663 -ne `wc -c <'README-6.3'`; then
- echo shar: \"'README-6.3'\" unpacked with wrong size!
- fi
- # end of 'README-6.3'
- fi
- echo shar: End of shell archive.
- exit 0
-